home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / screen32.lha / screen-3.2b / config.h.in < prev    next >
Text File  |  1992-10-27  |  11KB  |  342 lines

  1. /* Template configuration file for screen.  -*- C -*-
  2.  * Copyright (c) 1991
  3.  *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
  4.  *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
  5.  * Copyright (c) 1987 Oliver Laumann
  6.  *
  7.  * This program is free software; you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License as published by
  9.  * the Free Software Foundation; either version 1, or (at your option)
  10.  * any later version.
  11.  *
  12.  * This program is distributed in the hope that it will be useful,
  13.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  * GNU General Public License for more details.
  16.  *
  17.  * You should have received a copy of the GNU General Public License
  18.  * along with this program (see the file COPYING); if not, write to the
  19.  * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  20.  *
  21.  * Noteworthy contributors to screen's design and implementation:
  22.  *    Wayne Davison (davison@borland.com)
  23.  *    Patrick Wolfe (pat@kai.com, kailand!pat)
  24.  *    Bart Schaefer (schaefer@cse.ogi.edu)
  25.  *    Nathan Glasser (nathan@brokaw.lcs.mit.edu)
  26.  *    Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
  27.  *    Howard Chu (hyc@hanauma.jpl.nasa.gov)
  28.  *    Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
  29.  *    Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
  30.  *    Marc Boucher (marc@CAM.ORG)
  31.  *
  32.  ****************************************************************
  33.  * $Id: config.all,v 1.2 92/02/03 02:30:36 jnweiger Exp $ FAU
  34.  */
  35.  
  36. /*
  37.  * This file has two parts:
  38.  * 1.  Site configuration.  Preferences that depend on your tastes
  39.  *     or on details of your individual installation.
  40.  *     You should check these values by hand.
  41.  *
  42.  * 2.  O.S. configuration.  Variables that depend on what kind of
  43.  *     operating system you are running.
  44.  *     The configure script tries to set these correctly automatically
  45.  *     when it creates config.h from config.h.in.
  46.  *     If it messes up, you can set them by hand.
  47.  */
  48.  
  49.  
  50. /*
  51.  *        Site Configuration Section
  52.  */
  53.  
  54.  
  55. /*
  56.  * First, decide whether to install screen set-uid to root.
  57.  * This isn't necessary to use screen, but it allows the pseudo-ttys
  58.  * to be set to their proper owner (for security purposes), /etc/utmp to be
  59.  * updated, and /dev/kmem to be accessed to read the load average values.
  60.  *
  61.  * Failing to install it suid root (e.g., if you fear a trojan horse) doesn't
  62.  * have any major disadvantages, except that w(1) and some other utilities
  63.  * will display only "screen" as the current process, and the pseudo ttys
  64.  * (ptys) used for the virtual terminals won't have their owners set.  Screen
  65.  * can provide you some pty security by opening the ptys exclusively, but
  66.  * this has the unfortunate side-effect of keeping your own subprocesses from
  67.  * being able to open /dev/tty.
  68.  *
  69.  * An alternative to installing screen set-uid root is to install it set-gid
  70.  * utmp (with the file /etc/utmp installed to be group-utmp writable) or
  71.  * set-gid kmem (with /dev/kmem set to be group-kmem readable) or some other
  72.  * custom group to give you both.  The final alternative is to omit /etc/utmp
  73.  * updating and the /dev/kmem reading (see the following defines) and simply
  74.  * run screen as a regular program -- its major functions will be unaffected.
  75.  *
  76.  * If screen is going to be installed set-uid root, you MUST define SUIDROOT.
  77.  */
  78. #define SUIDROOT
  79.  
  80. /*
  81.  * If screen is installed with permissions to update /etc/utmp (such as if
  82.  * it is installed set-uid root), define UTMPOK.  Set LOGINDEFAULT to one (1)
  83.  * if you want entries added to /etc/utmp by default, else set it to zero (0).
  84.  */
  85. #define UTMPOK
  86. #define LOGINDEFAULT    1
  87.  
  88. /*
  89.  * If UTMPOK is defined and your system (incorrectly) counts logins by
  90.  * counting non-null entries in /etc/utmp (instead of counting non-null
  91.  * entries with no hostname that are not on a pseudo tty), define USRLIMIT
  92.  * to have screen put an upper-limit on the number of entries to write
  93.  * into /etc/utmp.  This helps to keep you from exceeding a limited-user
  94.  * license.
  95.  */
  96. #undef USRLIMIT
  97.  
  98. /*
  99.  * If screen is NOT installed set-uid root, screen can provide tty security
  100.  * by exclusively locking the ptys.  While this keeps other users from
  101.  * opening your ptys, it also keeps your own subprocesses from being able
  102.  * to open /dev/tty.  Define LOCKPTY to add this exclusive locking.
  103.  */
  104. #undef LOCKPTY
  105.  
  106. /*
  107.  * If your version of NFS supports named sockets and you install screen
  108.  * suid root, you may need to define NFS_HACK for screen to be able to
  109.  * open the sockets.
  110.  */
  111. #undef NFS_HACK
  112.  
  113. /*
  114.  * By default screen will create a directory named ".screen" in the user's
  115.  * HOME directory to contain the named sockets.  If this causes you problems
  116.  * (e.g., some user's HOME directories are NFS-mounted and don't support
  117.  * named sockets) you can have screen create the socket directories in a
  118.  * common subdirectory, such as /tmp or /usr/tmp.  It makes things a little
  119.  * more secure if you choose a directory where the "sticky" bit is on, but
  120.  * this isn't required.  Screen will name the subdirectories "S-$USER"
  121.  * (e.g /tmp/S-davison).
  122.  * Do not define TMPTEST unless it's for debugging purpose.
  123.  * If you want to have your socket directory in "/tmp/screens" then
  124.  * define LOCALSOCKDIR and change the definition of SOCKDIR below.
  125.  */
  126. #define LOCALSOCKDIR
  127.  
  128. #ifdef LOCALSOCKDIR
  129. # ifndef TMPTEST
  130. #  define SOCKDIR "/tmp/screens"
  131. # else
  132. #  define SOCKDIR "/tmp/testscreens"
  133. # endif
  134. #endif
  135.  
  136. /*
  137.  * If you'd rather see the status line on the first line of your
  138.  * terminal rather than the last, define TOPSTAT.
  139.  * This should really be screenrc-settable, not a compile option.
  140.  */
  141. #undef TOPSTAT
  142.  
  143. /*
  144.  * define LOCK if you want to use a lock program for a screenlock.
  145.  * define PASSWORD for secure reattach of your screen.
  146.  * define COPY_PASTE to use the famous hacker's treasure zoo.
  147.  * define POW_DETACH to have a detach_and_logout key.
  148.  * define REMOTE_DETACH (-d option) to move screen between terminals.
  149.  */
  150. #define LOCK
  151. #define PASSWORD
  152. #define COPY_PASTE
  153. #define REMOTE_DETACH
  154. #define POW_DETACH
  155.  
  156. /*
  157.  * As error messages are mostly meaningless to the user, we
  158.  * try to throw out phrases that are somewhat more familiar
  159.  * to ...well, at least familiar to us NetHack players.
  160.  */
  161. #define NETHACK
  162.  
  163.  
  164. /*
  165.  *        O.S. Configuration Section
  166.  *        configure defines these symbols if appropriate
  167.  */
  168.  
  169.  
  170. /*
  171.  * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
  172.  */
  173. #undef POSIX
  174.  
  175. /*
  176.  * Define BSDJOBS if you have BSD-style job control (both process
  177.  * groups and a tty that deals correctly with them).
  178.  */
  179. #undef BSDJOBS
  180.  
  181. /*
  182.  * Define TERMIO if you have struct termio instead of struct sgttyb.
  183.  * This is usually the case for SVID systems, whereas BSD uses sgttyb.
  184.  * POSIX systems should define this anyway, even though they use
  185.  * struct termios.
  186.  */
  187. #undef TERMIO
  188.  
  189. /*
  190.  * Define TERMINFO if your machine emulates the termcap routines
  191.  * with the terminfo database.
  192.  * Thus the .screenrc file is parsed for
  193.  * the command 'terminfo' and not 'termcap'.
  194.  */
  195. #undef TERMINFO
  196.  
  197. /*
  198.  * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
  199.  */
  200. #undef SYSV
  201.  
  202. /*
  203.  * Define SIGVOID if your signal handlers return void.  On older
  204.  * systems, they return int, but on newer ones, they return void.
  205.  */
  206. #undef SIGVOID 
  207.  
  208. /*
  209.  * Define DIRENT if your system has <dirent.h> instead of <sys/dir.h>
  210.  */
  211. #undef DIRENT
  212.  
  213. /*
  214.  * If your system has getutent(), pututline(), etc. to write to the
  215.  * utmp file, define GETUTENT.
  216.  */
  217. #undef GETUTENT
  218.  
  219. /*
  220.  * Define UTHOST if the utmp file has a host field.
  221.  */
  222. #undef UTHOST
  223.  
  224. /*
  225.  * If ttyslot() breaks getlogin() by returning indexes to utmp entries of
  226.  * type DEAD_PROCESS, then our getlogin() replacement should be selected by
  227.  * defining BUGGYGETLOGIN.  This is only known to happen on SVR4.
  228.  * This is only used if UTMPOK is defined.
  229.  */
  230. #undef BUGGYGETLOGIN
  231.  
  232. /*
  233.  * If your system does not have the calls setreuid() and setregid(), define
  234.  * NOREUID to force screen to use a forked process to safely create output
  235.  * files without retaining any special privileges.  (Output logging will be
  236.  * disabled, however.)
  237.  */
  238. #undef NOREUID
  239.  
  240. /*
  241.  * If your system has the new format /etc/ttys (like 4.3 BSD) and the
  242.  * getttyent(3) library functions, define GETTTYENT.
  243.  */
  244. #undef GETTTYENT
  245.  
  246. /*
  247.  * Define USEBCOPY if the bcopy() from your system's C library supports the
  248.  * overlapping of source and destination blocks.  When undefined, screen
  249.  * uses its own (probably slower) version of bcopy().
  250.  */
  251. #undef USEBCOPY
  252.  
  253. /*
  254.  * If your system has vsprintf() and requires the use of the macros in
  255.  * <varargs.h> to use functions with variable arguments, define USEVARARGS.
  256.  */
  257. #undef USEVARARGS
  258.  
  259. /*
  260.  * Define this if your system supports named pipes
  261.  * instead of sockets.
  262.  */
  263. #undef NAMEDPIPE
  264.  
  265. /*
  266.  * if your system does not come with a putenv()/getenv() functions, 
  267.  * you may bring in our own code by defining NEEDSETENV *and* adding 
  268.  * putenv.o to OFILES in your Makefile.
  269.  */
  270. #undef NEEDSETENV
  271.  
  272. /*
  273.  * Define if you have shadow passwords and <shadow.h>.
  274.  */
  275. #undef SHADOWPW
  276.  
  277. /*
  278.  * Define if you are not SYSV, POSIX, apollo, or sysV68,
  279.  * yet your headers define pid_t.
  280.  */
  281. #undef PID_T_DEFINED
  282.  
  283. /*
  284.  * Define if your headers define sig_t.
  285.  */
  286. #undef SIG_T_DEFINED
  287.  
  288. /*
  289.  * Define if you have nlist.h.  For getting the load average.
  290.  */
  291. #undef NLIST_STRUCT
  292.  
  293. /*
  294.  * Define each of these if the appropriate function is declared in
  295.  * your system header files.
  296.  */
  297. #undef CRYPT_DECLARED
  298. #undef GETHOSTNAME_DECLARED
  299. #undef KILLSTUFF_DECLARED /* kill and maybe killpg */
  300. #undef MEMFUNCS_DECLARED /* bzero, bcopy or memset */
  301. #undef MKNOD_DECLARED /* in sys/stat.h */
  302. #undef NLIST_DECLARED
  303. #undef PUTENV_DECLARED
  304. #undef REUID_DECLARED /* setres?[ug]id */
  305. #undef SETPGID_DECLARED /* in unistd.h */
  306. #undef VPRNT_DECLARED /* vsprintf */
  307. #undef WAITSTUFF_DECLARED /* wait3 */
  308.  
  309. /*
  310.  * If you are on a SYS V machine that restricts filename length to 14 
  311.  * characters, you may need to enforce that by defining this to 14.
  312.  */
  313. #ifndef NAME_MAX
  314. #undef NAME_MAX
  315. #endif
  316.  
  317. /*
  318.  * The characters to try when finding pty names to open,
  319.  * on some types of systems.
  320.  * Try each char in PTY_FIRST_CHARS followed by each char in
  321.  * PTY_SECOND_CHARS in succession until finding a free pty.
  322.  */
  323. #ifdef MIPS
  324. #define PTY_FIRST_CHARS "zyxwvutsrqp"
  325. #endif
  326.  
  327. #ifdef hpux
  328. #define PTY_FIRST_CHARS "pqrstuvw"
  329. #endif
  330.  
  331. #ifdef sun
  332. #define PTY_FIRST_CHARS "qprstuvwxyzPQRST"
  333. #endif
  334.  
  335. #ifndef PTY_FIRST_CHARS
  336. #define PTY_FIRST_CHARS "qpr"
  337. #endif
  338.  
  339. #ifndef PTY_SECOND_CHARS
  340. #define PTY_SECOND_CHARS "0123456789abcdef"
  341. #endif
  342.